Typical network nodes include a series of port interfaces, a switch fabric, and a control module. The port interfaces connect the network node to external network links and manage the input/output operations between the external links and the network node. The switch fabric provides pathways between each port of the network node for the forwarding of packets and the control module performs the central processing activities required to ensure that incoming packets are properly forwarded. Two critical operations performed by the control module involve implementing the protocols that are used by the network node to forward packets and maintaining protocol databases that are generated as a result of implementing the protocols. Example protocols that are implemented by the control module include Layer 2 protocols such as Spanning Tree Protocol (STP), Link Aggregation Control Protocol (LACP), and Layer 2 Learning and Layer 3 protocols such as Open Shortest Path First (OSPF), Border Gateway Protocol (BGP), and Intermediate System-to-Intermediate System (ISIS), where the layers are defined by the International Standards Organization (ISO) in the Open System Interconnect (OSI) model.
Because the operations performed by the control module are critical to the proper forwarding of packets within a network node, network nodes are commonly equipped with redundant control modules. For example, a network node often includes a primary control module that is actively operating and a backup control module that can quickly take over in the event of a failure of the primary control module. Various software programs are run on the control module to support operation of the network node. The software programs may include operating systems, applications, network protocols and other types of software programs. The software programs running on the control module periodically need to be changed or “upgraded” to incorporate new features, fix bugs, etc. When upgrading the software of a control module, there is a danger of losing traffic (i.e., taking traffic “hits”) if the upgrade process causes the control module to be temporarily out of service. The loss of traffic during a software upgrade is undesirable and should be avoided if possible.
One known approach to software upgrades in a network node having redundant control modules involves loading the upgrade onto the primary control module. This approach requires rebooting of the primary control module while it is actively controlling the network node. Such a rebooting results in lost traffic. For example, if the software upgrade process causes a crash in the primary control module while it is in its active state, then the system would be forced into failover mode, and the backup control module would attempt to restore operation of the network node, resulting in lost traffic.
Therefore, to minimize traffic loss during software upgrades to a control module, there is a need for an improved technique for upgrading software in a network node having redundant control modules.